home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 2 / PC World Interactive 2 - Eylül 1997.iso / shar / ofis / allma.exe / DROPCAP.SMM < prev    next >
INI File  |  1993-10-27  |  11KB  |  624 lines

  1. [ver]
  2.     4
  3. [sty]
  4.     _macro.sty
  5. [files]
  6. [charset]
  7.     82
  8.     ANSI (Windows, IBM CP 1252)
  9. [revisions]
  10.     0
  11. [prn]
  12.     Canon Bubble-Jet BJ-10e
  13. [port]
  14.     FILE:
  15. [lang]
  16.     18
  17. [desc]
  18.     Create a drop cap
  19.     
  20.     
  21.     
  22.     
  23.     751784769
  24.     30
  25.     717547426
  26.     862
  27.     2
  28.     26
  29.     161
  30.     0
  31.     3
  32.     
  33.     
  34.     
  35.     
  36.     
  37.     
  38.     0
  39. [fopts]
  40.     0
  41.     1
  42.     0
  43.     0
  44. [lnopts]
  45.     2
  46.     Body Text
  47.     1
  48. [docopts]
  49.     5
  50.     2
  51. [GramStyle]
  52.     
  53. [ParaNum]
  54.     1
  55. [tag]
  56.     Body Text
  57.     2
  58.     [fnt]
  59.         Courier
  60.         200
  61.         0
  62.         32768
  63.     [algn]
  64.         1
  65.         3
  66.         0
  67.         0
  68.         960
  69.     [spc]
  70.         17
  71.         212
  72.         4
  73.         0
  74.         0
  75.         4
  76.         100
  77.     [brk]
  78.         0
  79.     [line]
  80.         8
  81.         0
  82.         1
  83.         0
  84.         1
  85.         1
  86.         1
  87.         10
  88.         10
  89.         1
  90.     [spec]
  91.         0
  92.         0
  93.         
  94.         0
  95.         1
  96.         1
  97.         0
  98.         0
  99.         0
  100.         0
  101.     [nfmt]
  102.         280
  103.         1
  104.         2
  105.         .
  106.         ,
  107.         $
  108.     Body Text
  109.     0
  110.     0
  111. [lay]
  112.     Standard
  113.     516
  114.     [rght]
  115.         16834
  116.         11907
  117.         2
  118.         960
  119.         960
  120.         3
  121.         1440
  122.         960
  123.         2
  124.         1
  125.         0
  126.         1
  127.         0
  128.         2
  129.         1
  130.         960
  131.         10947
  132.         20
  133.         1
  134.         480
  135.         1
  136.         960
  137.         1
  138.         1440
  139.         1
  140.         1923
  141.         1
  142.         2404
  143.         1
  144.         2880
  145.         1
  146.         3360
  147.         1
  148.         3845
  149.         1
  150.         4320
  151.         1
  152.         4800
  153.         1
  154.         5287
  155.         1
  156.         5760
  157.         1
  158.         6240
  159.         1
  160.         6713
  161.         1
  162.         7200
  163.         1
  164.         7680
  165.         1
  166.         8155
  167.         1
  168.         8640
  169.         1
  170.         9360
  171.         1
  172.         10080
  173.     [hrght]
  174.     [lyfrm]
  175.         1
  176.         11200
  177.         0
  178.         0
  179.         11907
  180.         1440
  181.         0
  182.         1
  183.         3
  184.         1 0 0 0 0 0 0
  185.         0
  186.         0
  187.         1
  188.     [frmlay]
  189.         1440
  190.         11907
  191.         1
  192.         1440
  193.         0
  194.         3
  195.         480
  196.         1440
  197.         0
  198.         1
  199.         0
  200.         1
  201.         1
  202.         0
  203.         1
  204.         1440
  205.         10465
  206.         0
  207.     [txt]
  208. @Header@DROPCAP.SMM - Create a Drop Cap<**>By: Nick Payne </V> <:da<*$><* >>
  209.  
  210. >
  211.     [frght]
  212.     [lyfrm]
  213.         1
  214.         13248
  215.         0
  216.         15874
  217.         11907
  218.         16834
  219.         0
  220.         1
  221.         3
  222.         1 0 0 0 0 0 0
  223.         0
  224.         0
  225.         2
  226.     [frmlay]
  227.         16834
  228.         11907
  229.         1
  230.         1440
  231.         357
  232.         2
  233.         16044
  234.         1440
  235.         0
  236.         1
  237.         0
  238.         1
  239.         1
  240.         0
  241.         1
  242.         1440
  243.         10465
  244.         0
  245.     [txt]
  246. <+B><:P10,0,>
  247.  
  248. >
  249. [elay]
  250. [l1]
  251.     0
  252. [pg]
  253.     2
  254.     49 0 75 0 0 1 0 65535 2 Standard    65535 0 0    0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
  255.     92 0 47 1025 0 0 0 65535 65535 Standard    65535 0 0    0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
  256. [edoc]
  257. <:#280,9987><:f240,2TimesNewRomanPS,><*:>' This macro changes the first character of the current paragraph to a drop cap.
  258.  
  259. <:#280,9987><:f240,2TimesNewRomanPS,>' The insertion point can be anywhere in the paragraph.
  260.  
  261. <:#280,9987><:f240,2TimesNewRomanPS,>' The default height for the drop cap is three lines. If you want to change this,
  262.  
  263. <:#280,9987><:f240,2TimesNewRomanPS,>' change the value of the constant NUM_LINES
  264.  
  265. <:#280,9987><:f240,2TimesNewRomanPS,>
  266.  
  267. @Function@<:#280,9987><:f240,2TimesNewRomanPS,>' give symbolic names to constants
  268.  
  269. <:#280,9987><:f240,2TimesNewRomanPS,>define NUM_LINES         3                    ' # lines drop cap occupies
  270.  
  271. <:#280,9987><:f240,2TimesNewRomanPS,>
  272.  
  273. @Function@<:#280,9987><:f240,2TimesNewRomanPS,>Function AddToMenu()
  274.  
  275. @Subhead@<:#280,9987><:f240,2TimesNewRomanPS,>rmac = GetRunningMacroFile$()
  276.  
  277. @Subhead@<:#280,9987><:f240,2TimesNewRomanPS,>StatusBarMsg("Installing DropCap on the Edit / Insert cascading menu")
  278.  
  279. @Subhead@<:#280,9987><:f240,2TimesNewRomanPS,>DeleteMenuItem(1, "&Edit" "&Insert", "Drop &Cap")
  280.  
  281. @Subhead@<:#560,9987><:f240,2TimesNewRomanPS,>InsertCascadeMenuItem(1, "&Edit", "&Insert", 1, "Drop &Cap" , "{rmac}!dropcap", "Convert first character of current paragraph to a Drop Cap.")
  282.  
  283. @Subhead@<:#280,9987><:f240,2TimesNewRomanPS,>StatusBarMsg("")
  284.  
  285. @End Function@<:#280,9987><:f240,2TimesNewRomanPS,>end function
  286.  
  287. @Function@<:#280,9987><:f240,2TimesNewRomanPS,>
  288.  
  289. @Function@<:#280,9987><:f240,2TimesNewRomanPS,>Function DropCap()
  290.  
  291. <:#280,9987><:f240,2TimesNewRomanPS,>' SingleStep(1)
  292.  
  293. <:#280,9987><:f240,2TimesNewRomanPS,>' must be in layout mode to get the cursor position
  294.  
  295. <:#280,9987><:f240,2TimesNewRomanPS,>mode = GetMode()                                ' what mode is the screen in?
  296.  
  297. <:#280,9987><:f240,2TimesNewRomanPS,>IF mode != 1
  298.  
  299. <:#280,9987><:f240,2TimesNewRomanPS,>LayoutMode()                                ' if not layout mode, make it so
  300.  
  301. <:#280,9987><:f240,2TimesNewRomanPS,>ENDIF
  302.  
  303. <:#280,9987><:f240,2TimesNewRomanPS,>
  304.  
  305. <:#280,9987><:f240,2TimesNewRomanPS,>Type("<[>Home]<[>Right]<[>CTRLDown]<[>CTRLUp]")        ' go to start of para
  306.  
  307. <:#280,9987><:f240,2TimesNewRomanPS,>
  308.  
  309. <:#280,9987><:f240,2TimesNewRomanPS,>' test that first character is alphabetic
  310.  
  311. <:#280,9987><:f240,2TimesNewRomanPS,>ucLow = ASC("A")
  312.  
  313. <:#280,9987><:f240,2TimesNewRomanPS,>ucHigh = ASC("Z")
  314.  
  315. <:#280,9987><:f240,2TimesNewRomanPS,>lcLow = ASC("a")
  316.  
  317. <:#280,9987><:f240,2TimesNewRomanPS,>lcHigh = ASC("z")
  318.  
  319. <:#280,9987><:f240,2TimesNewRomanPS,>charNum = ASC(CurChar$())
  320.  
  321. <:#560,9987><:f240,2TimesNewRomanPS,>IF (charNum <;>= ucLow AND charNum <<= ucHigh) OR (charNum <;>= lcLow AND charNum <<= lcHigh)
  322.  
  323. <:#280,9987><:f240,2TimesNewRomanPS,>    ' get cursor position (Y coordinates are negative)
  324.  
  325. <:#280,9987><:f240,2TimesNewRomanPS,>    position = CursorPosition$()                ' get cursor pos, in twips
  326.  
  327. <:#280,9987><:f240,2TimesNewRomanPS,>    paraX = strfield$(position, 1, ",")        ' parse out X coord
  328.  
  329. <:#280,9987><:f240,2TimesNewRomanPS,>    paraY = strfield$(position, 2, ",")        ' parse out Y coord
  330.  
  331. <:#280,9987><:f240,2TimesNewRomanPS,>
  332.  
  333. <:#280,9987><:f240,2TimesNewRomanPS,>    ' now find line height
  334.  
  335. <:#280,9987><:f240,2TimesNewRomanPS,>    Type("<[>Down]")                            ' down a line
  336.  
  337. <:#280,9987><:f240,2TimesNewRomanPS,>    position = CursorPosition$()
  338.  
  339. <:#280,9987><:f240,2TimesNewRomanPS,>    Type("<[>Up]")                                ' return to para start
  340.  
  341. <:#280,9987><:f240,2TimesNewRomanPS,>    lineHeight = paraY - strfield$(position, 2, ",")
  342.  
  343. <:#280,9987><:f240,2TimesNewRomanPS,>    IF lineHeight << 0                        ' we've gone to next page
  344.  
  345. <:#280,9987><:f240,2TimesNewRomanPS,>        Message("Unable to place a Drop Cap at this point on the page")
  346.  
  347. <:#280,9987><:f240,2TimesNewRomanPS,>        Exit Function
  348.  
  349. <:#280,9987><:f240,2TimesNewRomanPS,>    ENDIF
  350.  
  351. <:#280,9987><:f240,2TimesNewRomanPS,>
  352.  
  353. <:#280,9987><:f240,2TimesNewRomanPS,>    dropCapPointSize = lineHeight * NUM_LINES * 5 / 80
  354.  
  355. <:#280,9987><:f240,2TimesNewRomanPS,>    Type("<[>SHIFTRight]")                    ' select first char
  356.  
  357. <:#280,9987><:f240,2TimesNewRomanPS,>    FontPointSizeChange(dropCapPointSize)    ' make it big
  358.  
  359. <:#280,9987><:f240,2TimesNewRomanPS,>    IF (charNum <;>= lcLow AND charNum <<= lcHigh)
  360.  
  361. <:#280,9987><:f240,2TimesNewRomanPS,>        UpperCase()                            ' ensure char is upper case
  362.  
  363. <:#280,9987><:f240,2TimesNewRomanPS,>    ENDIF
  364.  
  365. <:#280,9987><:f240,2TimesNewRomanPS,>    ' the following apparently aimless line is needed because Ami Pro was not
  366.  
  367. <:#280,9987><:f240,2TimesNewRomanPS,>    ' returning the cursor position while the text was selected
  368.  
  369. <:#280,9987><:f240,2TimesNewRomanPS,>    Type("<[>Left]<[>Right]")
  370.  
  371. <:#280,9987><:f240,2TimesNewRomanPS,>    position = CursorPosition$()                ' get cursor pos, in twips
  372.  
  373. <:#280,9987><:f240,2TimesNewRomanPS,>    frameX = strfield$(position, 1, ",")    ' calculate character width
  374.  
  375. <:#280,9987><:f240,2TimesNewRomanPS,>    ' next line slightly increases the frame width or char doesn't display in frame
  376.  
  377. <:#280,9987><:f240,2TimesNewRomanPS,>    frameX = frameX + frameX / 50
  378.  
  379. <:#280,9987><:f240,2TimesNewRomanPS,>    frameY = paraY - lineHeight * NUM_LINES    ' and height
  380.  
  381. <:#280,9987><:f240,2TimesNewRomanPS,>    Type("<[>SHIFTLeft]")                        ' select character
  382.  
  383. <:#280,9987><:f240,2TimesNewRomanPS,>    Cut()                                    ' and cut it to clipboard
  384.  
  385. <:#280,9987><:f240,2TimesNewRomanPS,>
  386.  
  387. <:#280,9987><:f240,2TimesNewRomanPS,>    AddFrame(paraX, paraY, frameX, frameY)    ' add the frame
  388.  
  389. <:#280,9987><:f240,2TimesNewRomanPS,>    ' now ensure the frame is correct type, has no border, etc.
  390.  
  391. <:#280,9987><:f240,2TimesNewRomanPS,>    FrameModInit()
  392.  
  393. <:#280,9987><:f240,2TimesNewRomanPS,>    FrameModLines(0, 1, 1, 0, 16777215, 0, 0, 0, 0, 0)
  394.  
  395. <:#280,9987><:f240,2TimesNewRomanPS,>    FrameModType(704, 0, "")
  396.  
  397. <:#280,9987><:f240,2TimesNewRomanPS,>    FrameModBorders(frameX-ParaX, paraY-frameY, 0-paraY, paraX, 0, 0, 0, 0, 3)
  398.  
  399. <:#280,9987><:f240,2TimesNewRomanPS,>    FrameModColumns(0, 2, 0, 1, 0, frameX-ParaX, 0)
  400.  
  401. <:#280,9987><:f240,2TimesNewRomanPS,>    FrameModFinish()
  402.  
  403. <:#280,9987><:f240,2TimesNewRomanPS,>    Type("<[>Enter]")                            ' prepare to insert char in frame
  404.  
  405. <:#280,9987><:f240,2TimesNewRomanPS,>    Paste()                                    ' paste it back from clipboard
  406.  
  407. <:I0,0,0,0><:S+200><:#200,9987><:f240,2TimesNewRomanPS,>
  408.  
  409. <:#280,9987><:f240,2TimesNewRomanPS,>    Indent(0, 0, 0, 0)                        ' ensure no indentation on drop cap
  410.  
  411. <:#280,9987><:f240,2TimesNewRomanPS,>    Spacing(dropCapPointSize * 20 * 80 / 100)    ' reduce line spacing
  412.  
  413. <:#280,9987><:f240,2TimesNewRomanPS,>    Type("<[>SHIFTLeft]")                        ' select drop cap character
  414.  
  415. <:#280,9987><:f240,2TimesNewRomanPS,>    FontPointSizeChange(dropCapPointSize + 1)    ' make it fit better
  416.  
  417. <:#280,9987><:f240,2TimesNewRomanPS,>ELSE
  418.  
  419. <:#280,9987><:f240,2TimesNewRomanPS,>    message("First character of paragraph not alphabetic")
  420.  
  421. <:#280,9987><:f240,2TimesNewRomanPS,>ENDIF
  422.  
  423. <:#280,9987><:f240,2TimesNewRomanPS,>
  424.  
  425. <:#280,9987><:f240,2TimesNewRomanPS,>' return to previous mode if necessary
  426.  
  427. <:#280,9987><:f240,2TimesNewRomanPS,>IF mode = 48
  428.  
  429. <:#280,9987><:f240,2TimesNewRomanPS,>    OutlineMode()
  430.  
  431. <:#280,9987><:f240,2TimesNewRomanPS,>ELSEIF mode = 16
  432.  
  433. <:#280,9987><:f240,2TimesNewRomanPS,>    DraftMode()
  434.  
  435. <:#280,9987><:f240,2TimesNewRomanPS,>ENDIF
  436.  
  437. <:f240,2TimesNewRomanPS,>Type( "<[>Esc]<[>Esc]<[>Esc]<[>Right]<[>Left]<:f><[>CTRLDown]<:f240,2TimesNewRomanPS,><:f><:f240,2TimesNewRomanPS,>" )
  438.  
  439. @End Function@<:#280,9987><:f240,2TimesNewRomanPS,>END FUNCTION<:f240,,><:f>
  440.  
  441. >
  442.  
  443. [Embedded]
  444. 00009355
  445. >
  446. [macsum] 2
  447. AddToMenu 0 0 2 8
  448. DropCap 272 0 14 16
  449. [macse]
  450. 14 AddToMenu
  451. 0 802
  452. 13
  453. 8 1
  454. 0 789 "Installing DropCap on the Edit / Insert cascading menu"
  455. 0 520 1 "&Edit" "&Insert" "Drop &Cap"
  456. 0 529 1 "&Edit" "&Insert" 1 "Drop &Cap" "{1}!dropcap" "Convert first character of current paragraph to a Drop Cap."
  457. 0 789 ""
  458. 6 0
  459. 15
  460. 9
  461. 14 DropCap
  462. 0 29
  463. 13
  464. 8 1
  465. 6 1
  466. 5 1
  467. 18 1
  468. 11 00000065
  469. 2 210 1
  470. 0 6 "[36][39][16424][16422]"
  471. 0 40 "A"
  472. 13
  473. 8 2
  474. 0 40 "Z"
  475. 13
  476. 8 3
  477. 0 40 "a"
  478. 13
  479. 8 4
  480. 0 40 "z"
  481. 13
  482. 8 5
  483. 0 282
  484. 13
  485. 0 40 [X]
  486. 13
  487. 8 6
  488. 6 6
  489. 6 2
  490. 18 2
  491. 6 6
  492. 6 3
  493. 18 4
  494. 1 1
  495. 6 6
  496. 6 4
  497. 18 2
  498. 6 6
  499. 6 5
  500. 18 4
  501. 1 1
  502. 1 2
  503. 11 00001203
  504. 0 293
  505. 13
  506. 8 7
  507. 0 20 "{7}" 1 ","
  508. 13
  509. 8 8
  510. 0 20 "{7}" 2 ","
  511. 13
  512. 8 9
  513. 0 6 "[40]"
  514. 0 293
  515. 13
  516. 8 7
  517. 0 6 "[38]"
  518. 6 9
  519. 0 20 "{7}" 2 ","
  520. 13
  521. 3 1
  522. 8 10
  523. 6 10
  524. 5 0
  525. 18 5
  526. 11 00000543
  527. 0 3 "Unable to place a Drop Cap at this point on the page"
  528. 6 0
  529. 15
  530. 9
  531. 6 10
  532. 5 3
  533. 4 0
  534. 5 5
  535. 4 0
  536. 5 80
  537. 4 1
  538. 8 11
  539. 0 6 "[4135]"
  540. 2 279 1 "{11}"
  541. 6 6
  542. 6 4
  543. 18 2
  544. 6 6
  545. 6 5
  546. 18 4
  547. 1 1
  548. 11 00000675
  549. 2 273 1
  550. 0 6 "[37][39]"
  551. 0 293
  552. 13
  553. 8 7
  554. 0 20 "{7}" 1 ","
  555. 13
  556. 8 12
  557. 6 12
  558. 6 12
  559. 5 50
  560. 4 1
  561. 3 0
  562. 8 12
  563. 6 9
  564. 6 10
  565. 5 3
  566. 4 0
  567. 3 1
  568. 8 13
  569. 0 6 "[4133]"
  570. 2 153 1
  571. 2 413 1 "{8}" "{9}" "{12}" "{13}"
  572. 2 421 1
  573. 2 416 1 0 1 1 0 16777215 0 0 0 0 0
  574. 2 417 1 704 0 ""
  575. 6 12
  576. 6 8
  577. 3 1
  578. 6 9
  579. 6 13
  580. 3 1
  581. 5 0
  582. 6 9
  583. 3 1
  584. 2 418 1 [X] [X] [X] "{8}" 0 0 0 0 3
  585. 6 12
  586. 6 8
  587. 3 1
  588. 2 419 1 0 2 0 1 0 [X] 0
  589. 2 420 1
  590. 0 6 "[13]"
  591. 2 155 1
  592. 2 265 1 0 0 0 0
  593. 6 11
  594. 5 20
  595. 4 0
  596. 5 80
  597. 4 0
  598. 5 100
  599. 4 1
  600. 2 252 1 [X]
  601. 0 6 "[4133]"
  602. 6 11
  603. 5 1
  604. 3 0
  605. 2 279 1 [X]
  606. 10 00001254
  607. 0 3 "First character of paragraph not alphabetic"
  608. 6 1
  609. 5 48
  610. 18 0
  611. 11 00001306
  612. 2 218 1
  613. 10 00001345
  614. 6 1
  615. 5 16
  616. 18 0
  617. 11 00001345
  618. 2 211 1
  619. 0 6 "[27][27][27][39][37][16424]"
  620. 6 0
  621. 15
  622. 9
  623. 00009380
  624.